package com.zhxy.util;

import java.net.InetAddress;
import java.net.UnknownHostException;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 调用网宿API所需要的配置信息。
 * @author XnOU
 */
public final class Config {

    public final Logger logger = LoggerFactory.getLogger(getClass());
    /**
     * 具体AK和SK信息请从网宿云存储Web应用中(安全管理-密钥管理)处获取。
     */
    public static String AK = "93fc9d1253552b79746da5a67d0653e60aa834c0";
    public static String SK = "86ac06781f4b8a7edcf4cb7bd702446297b3bf47";
    public static String PUT_URL = "https://upload.videocc.net"; // 上传加速
    public static String GET_URL = "";
    public static String MGR_URL = "http://easyfun.mgr1.v1.wcsapi.com";
    public static String LOCAL_IP = "127.0.0.1";
    public static String LOG_FILE_PATH = "";
    public static String VERSION_NO = "polyv-apollo";

    public static final String LIVE_RECORD_BUCKET = "polyv"; // 直播录制的空间
    public static final String UPLOAD_VIDEO_BUCKET = "upload"; // 上传视频的空间

    /**
     * 禁止外部直接生成实例<br>
     */
    private Config() {
        try {
            LOCAL_IP = InetAddress.getLocalHost().getHostAddress();
        } catch (UnknownHostException e) {
            logger.error("unknow host exception " + e.getMessage());
            LOCAL_IP = "127.0.0.1";
        }
    }

    /**
     * 初始化构造密钥<br>
     *
     * @param ak 空间的AK信息
     * @param sk 空间的SK信息
     */
    public static void init(String ak, String sk) {
        AK = ak;
        SK = sk;
    }

    /**
     * 初始化构造密钥<br>
     *
     * @param ak 空间的AK信息
     * @param sk 空间的SK信息
     * @param logFilePath HTTP请求日志的路径
     */
    public static void init(String ak, String sk, String logFilePath) {
        AK = ak;
        SK = sk;
        LOG_FILE_PATH = logFilePath;
    }

    /**
     * 初始化构造密钥<br>
     *
     * @param ak 空间的AK信息
     * @param sk 空间的SK信息
     */
    public static void init(String ak, String sk, String putUrl, String getUrl) {
        AK = ak;
        SK = sk;
        PUT_URL = putUrl;
        GET_URL = getUrl;
    }

    /**
     * 初始化构造密钥<br>
     *
     * @param ak 空间的AK信息
     * @param sk 空间的SK信息
     */
    public static void init(String ak, String sk, String putUrl, String getUrl, String mgrUrl) {
        AK = ak;
        SK = sk;
        PUT_URL = putUrl;
        GET_URL = getUrl;
        MGR_URL = mgrUrl;
    }

    /**
     * 初始化构造密钥<br>
     *
     * @param ak 空间的AK信息
     * @param sk 空间的SK信息
     * @param logFilePath HTTP请求日志的路径
     */
    public static void init(String ak, String sk, String putUrl, String getUrl, String mgrUrl, String logFilePath) {
        AK = ak;
        SK = sk;
        PUT_URL = putUrl;
        GET_URL = getUrl;
        MGR_URL = mgrUrl;
        LOG_FILE_PATH = logFilePath;
    }
}
